home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / Z-Misc Series / (k)zd.d64 / txt.bootusa < prev    next >
Text File  |  2007-03-01  |  10KB  |  309 lines

  1. ║LM1:RM37
  2. 6. ╠ISTING OF ┬╧╧╘╒╙┴
  3. ---------------------
  4.  
  5. ├300  PHA         ;SAVE ACCU ON STACK
  6. ├301  LDA $9┴     ;GET OUTPUT UNIT
  7. ├303  CMP #$03    ;OUTPUT ON SCREEN?
  8. ├305  BEQ $├30┴   ;YES, THEN TO NEW ROUTINE
  9. ├307  JMP $╞1─5   ;BACK TO ╦┼╥╬┴╠
  10. ├30┴  PLA         ;
  11. ├30┬  PHA         ;GET BYTE IN ACCU
  12. ├30├  STA $─7     ;SAVE BYTE IN $D7
  13. ├30┼  TXA         ;
  14. ├30╞  PHA         ;SAVE X ON STACK
  15. ├310  TYA         ;
  16. ├311  PHA         ;SAVE Y ON STACK
  17. ├312  LDA $─7     ;GET BYTE AGAIN
  18. ├314  LDX $├59┼   ;READ LEADIN-FLAG
  19. ├317  BEQ $├329   ;NO LEADIN?
  20. ├319  STA $2─     ;SAVE ERROR NUMBER
  21. ├31┬  LDA #$00     FALSE IN ACCU
  22. ├31─  STA $├59┼    RESET LEADIN FLAG
  23. ├320  LDA $0800    SET ERROR FLAG
  24. ├323  JSR $├341    ERROR MESSAGE 
  25. ├326  JMP $┼6┴8    END ROUTINE
  26. ├329  CMP #$07     CHR$(7) ?
  27. ├32┬  BNE $├333    NOT CHR$(7)-TEST
  28. ├32─  JSR $├5┬5    BEEP!
  29. ├330  JMP $┼6┴8    END ROUTINE
  30. ├333  CMP #$1┬     CHR$(27)?(LEADIN)
  31. ├335  BNE $├33┼    NOT, THEN GIVE OUT
  32. ├337  LDA #$╞╞     TRUE IN ACCU
  33. ├339  STA $├59┼    SET LEADIN FLAG
  34. ├33├  BNE $├330    END ROUTINE
  35. ├33┼  JMP $┼71─    OUTPUT CHAR 
  36. ├341  JSR $├9┬╞    OUTPUT MESSAGE
  37. ├344  RTS          ROOM FOR A JMP
  38. ├345  00           FREE
  39. ├346  00           FREE
  40. ├347  LDA #$00     POINTER ON $C400
  41. ├349  LDY #$├4     
  42. ├34┬  STA $0324    
  43. ├34┼  STY $0325    CHRIN TO $C400
  44. ├351  LDA #$00     POINTER TO $C300
  45. ├353  LDY #$├3     
  46. ├355  STA $0326    
  47. ├358  STY $0327    CHROUT TO $C300
  48. ├35┬  LDA #$51     
  49. ├35─  STA $19┬0    
  50. ├360  JMP $├8┼5    CON INIT ON $C8E5
  51. ├363  CMP #$0┬     ^K?
  52. ├365  BNE $├377    NOT, THEN TEST
  53. ├367  LDA #$20     SPACE TO ERASE
  54. ├369  LDY $─3      READ CURCOL
  55. ├36┬  STA ($─1),Y  ERASE LINE
  56. ├36─  INY          NEXT CHAR ON LINE
  57. ├36┼  CPY $─5      LENGHT OF LINE?
  58. ├370  BCC $├36┬    LESS, THEN TEST
  59. ├372  BEQ $├36┬    ERASE LAST CHAR
  60. ├374  JMP $├4├┴    WAIT FOR NEXT KEY
  61. ├377  CMP #$15     ^U?(START OF LINE)
  62. ├379  BNE $├381    NOT, THEN TEST 
  63. ├37┬  LDA #$00     
  64. ├37─  STA $─3      ZERO CURCOL
  65. ├37╞  BEQ $├374    WAIT FOR NEXT KEY
  66. ├381  CMP #$0╞     ^L (END OF LINE)
  67. ├383  BNE $├395    NOT SPECIAL
  68. ├385  LDY $─5      LENGTH OF LINE
  69. ├387  LDA ($─1),Y  GET CHAR
  70. ├389  CMP #$20     IS IT A SPACE?
  71. ├38┬  BNE $├390    FOUND EOL
  72. ├38─  DEY          NO, LOOK BACK ONE
  73. ├38┼  BNE $├387    NOT BOL
  74. ├390  STY $─3      CURSOR AT BOL
  75. ├392  JMP $├4├┴    NEXT KEY
  76. ├395  RTS          NOT SPECIAL
  77. ├396  LDA #$94     CODE INSERT
  78. ├398  JSR $┼716    OUTPUT ON SCREEN
  79. ├39┬  LDA #$00     
  80. ├39─  STA $─8      INSERTS=ZERO
  81. ├39╞  JMP $┼6┴8    END OF ROUTINE
  82. ├3┴2-├3╞╞          SCRATCH AREA (FOR
  83.                    FUTURE EXTENSIONS)
  84. ├400  LDA $99      WHAT INPUT DEVICE?
  85. ├402  BNE $├40╞    BACK TO ╦┼╥╬┴╠
  86. ├404  LDA $─3      CURCOL
  87. ├406  STA $├┴      SET CURCOL
  88. ├408  LDA $─6      CURROW
  89. ├40┴  STA $├9      SET CURROW
  90. ├40├  JMP $├469    SPECIAL CHARACTER
  91. ├40╞  JMP $╞166    TO ╦┼╥╬┴╠
  92. ├412  JSR $├477    OUTPUT CHAR
  93. ├415  LDA $├6      READ #CHARS IN BUFF  ├417  STA $├├      0 = CURSOR FLASH
  94. ├419  STA $0292    0 = AUTO SCROL DOWN
  95. ├41├  BEQ $├415    WAIT FOR KEY 
  96. ├41┼  SEI          NOW NO INTERRUPTS
  97.                    NO FLASHING CURSOR
  98. ├41╞  LDA $├╞      CURSOR ON?
  99. ├421  BEQ $├42╞    JUMP IF NOT ON
  100. ├423  LDA $├┼      CHAR UNDER CURSOR
  101. ├425  LDX $0287    COLOR UNDER CURSOR
  102. ├428  LDY #$00     
  103. ├42┴  STY $├╞      CURSOR OFF
  104. ├42├  JSR $┼┴13    RESET CHAR&COLOR
  105. ├42╞  JSR $┼5┬4    GET KEY
  106. ├432  JSR $├4┴1    TEST SPECIAL
  107. ├435  CMP #$0─     WAS IT RETURN?
  108. ├437  BNE $├412    NO, THEN PRINT
  109. ├439  LDY $─5      GET LINE LENGTH
  110. ├43┬  STY $─0      SET CR FLAG TRUE
  111. ├43─  LDA ($─1),Y  READ CHAR FROM LINE
  112. ├43╞  CMP #$20     IS IT A SPACE?
  113. ├441  BNE $├446    NO, TEST PREVIOUS
  114. ├443  DEY          BACK ONE
  115. ├444  BNE $├43─    START OF LINE?
  116. ├446  INY          ONE FORWARD
  117. ├447  STY $├8      MARK AS END OF LINE
  118. ├449  LDY #$00     
  119. ├44┬  STY $0292    SET AUTO SCROL DOWN
  120. ├44┼  STY $─3      CURCOL
  121. ├450  STY $─4      QUOTE MODE OFF
  122. ├452  LDA $├9      GET LINE NUMBER
  123. ├454  BMI $├471    READ FROM BOL
  124. ├456  LDX $─6      GET LINE NUMBER
  125. ├458  JSR $┼6┼─    LOGICAL NUMBER
  126. ├45┬  CPX $├9      = INPUT LINE #?
  127. ├45─  BNE $├471    NO, READ FROM BOL
  128. ├45╞  LDA $├┴      GET CURCOL
  129. ├461  STA $─3      SET INDEX
  130. ├463  CMP $├8      EOL?
  131. ├465  BCC $├471    IF SMALLER THEN READ
  132. ├467  BCS $├474    GREATER OR EQUAL, THEN READ NEW LINE
  133.  
  134.  
  135. ├469  TYA          
  136. ├46┴  PHA          SAVE Y-REGISTER
  137. ├46┬  TXA          
  138. ├46├  PHA          SAVE X-REGISTER
  139. ├46─  LDA $─0      GET CR FLAG
  140. ├46╞  BEQ $├415    READ NEW LINE
  141. ├471  JMP $┼63┴    NOT THEN TO ╦┼╥╬┴╠ (TEKEN LEZEN)
  142. ├474  JMP $┼65─    READ LINE
  143.  
  144. ├477  PHA          SUBROUTINE; OUTPUT CHAR
  145. ├478  STA $─7      SAVE CHAR IN $D7
  146. ├47┴  TXA          
  147. ├47┬  PHA          SAVE X REGISTER
  148. ├47├  TYA          
  149. ├47─  PHA          SAVE Y REGISTER
  150. ├47┼  LDA $─7      GET CHAR
  151. ├480  CMP #$22     OUPUT QUOTE?
  152. ├482  BNE $├48╞    NOT, THEN TEST
  153. ├484  BIT $├4┴0    QUOTE MODE ON?
  154. ├487  BMI $├48├    JMP IF 7TH BIT IS SET (QUOTEMODE ON)
  155. ├489  JMP $┼693    NO QUOTEMODE
  156. ├48├  JMP $┼73╞    QUOTE MODE
  157.  
  158. ├48╞  CMP #$94     CODE FOR INSERT?
  159. ├491  BEQ $├496    YES, THEN OUTPUT
  160. ├493  JMP $┼71─    NO SPECIAL CHAR: NORMAL ROUTINE 
  161. ├496  BIT $├4┴0    INSERT MODE ON?
  162. ├499  BVS $├493    BIT 6 SET, THEN INSERT MODE
  163. ├49┬  JMP $├396    OUTPUT WITHOUT INSERT MODE
  164.  
  165. ├49┼  00           FREE
  166. ├49╞  00           FREE
  167. ├4┴0  00           QUOTEFLAG BIT 7:1 = QUOTE MODE
  168.                              BIT 6:1 = INSERT MODE
  169.  
  170. ├4┴1  CMP #$16     ^V ? (SET COLORS) - USA-VERSION: COLORS ARE CHANGED 
  171. ├4┴3  BNE $├4┬7    NOT, THEN TEST
  172. ├4┴5  LDA #$0┬     COLOR 11 (= GREY 1)
  173. ├4┴7  STA $─020    SET BORDER COLOR
  174. ├4┴┴  LDA #$00     COLOR 0 (= BLACK)
  175. ├4┴├  STA $─021    SET BACKGROUND COLOR
  176. ├4┴╞  LDA #$01     COLOR 1 (= WHITE)
  177. ├4┬1  STA $0286    SET TEXT COLOR
  178. ├4┬4  JMP $├4├┴    EDIT LINE
  179.  
  180. ├4┬7  CMP #$17     ^W ? (SET COLORS)
  181. ├4┬9  BNE $├4├╞    NOT, THEN TEST
  182. ├4┬┬  LDA #$0┼     COLOR 14 (= LIGHT BLUE)
  183. ├4┬─  STA $─020    SET BORDER COLOR
  184. ├4├0  LDA #$06     COLOR 6 (= BLUE)
  185. ├4├2  STA $─021    SET BACKGROUND COLOR
  186. ├4├5  LDA #$0┼     COLOR 14 (= LIGHT BLUE)
  187. ├4├7  STA $0286    SET TEXT COLOR
  188. ├4├┴  PLA          
  189. ├4├┬  PLA          NO RTS, SO GET 2 BYTES FROM STACK
  190. ├4├├  JMP $├415    EDIT MODE
  191.  
  192.  
  193. ├4├╞  CMP #$01     ^A ? (ERASE INDENTION)
  194. ├4─1  BNE $├50┼    NOT, THEN TEST
  195. ├4─3  LDA $─5      GET FYSICAL LINE LENGTH
  196. ├4─5  CMP #$28     LINE LENGTH EQUALS 40?
  197. ├4─7  BCC $├4├┴    YES, THEN READY
  198. ├4─9  LDY #$28     ON POSITION 4
  199. ├4─┬  LDA ($─1),Y  READ 41TH CHARAVTER
  200. ├4──  CMP #$20     IS IT A SPACE?
  201. ├4─╞  BNE $├4├┴    NOT, THEN READY (NO INDENTION)
  202. ├4┼1  LDA $─3      GET X-POSITION CURSOR
  203. ├4┼3  PHA          SAVE POSITION
  204. ├4┼4  LDA #$00     
  205. ├4┼6  PHA          ZERO ONSTACK
  206. ├4┼7  LDA #$00     
  207. ├4┼9  STA $─8      NUMBER OF INSERTS = 0
  208. ├4┼┬  LDY #$29     SEARCH FROM 42TH CHARACTER
  209. ├4┼─  LDA ($─1),Y  READ CHAR
  210. ├4┼╞  CMP #$20     IS IT A SPACE?
  211. ├4╞1  BNE $├4╞┴    NOT, THEN FIRST CHAR FOUND
  212. ├4╞3  INY          NEXT CHAR?
  213. ├4╞4  CPY #$50     LAST CHAR?
  214. ├4╞6  BCC $├4┼─    NOT, THEN TEST
  215. ├4╞8  BCS $├506    YES, THEN BACK ON STACK AND READY
  216. ├4╞┴  STY $─3      X-POSITIE CURSOR ON THAT CHARACTER
  217. ├4╞├  LDA #$14     CODE FOR DELETE
  218. ├4╞┼  JSR $┼716    ERASE SPACE
  219. ├501  DEY          POSITION MINUS ONE
  220. ├502  CPY #$29     40TH CHARACTER?
  221. ├504  BCS $├4╞┼    NOT, THEN ERASE MORE SPACES
  222. ├506  PLA          
  223. ├507  STA $─8      NUMBER OF INSERTS = 0
  224. ├509  PLA          
  225. ├50┴  STA $─3      X-POSITION BACK
  226. ├50├  BPL $├4├┴    EDIT MODE
  227.  
  228. ├50┼  CMP #$83     CODE FOR SHIFT ╥╒╬/╙╘╧╨ ?
  229. ├510  BNE $├516    NOT, THEN TEST
  230. ├512  LDA #$84     REPLACE CODE BY $84
  231. ├514  BNE $├51┼    HANDLE AS IF FUNCTION KEY
  232.  
  233.  
  234.  
  235. ├516  CMP #$85     F1
  236. ├518  BCC $├540    LESS, THEN NO FUNCTION KEY
  237. ├51┴  CMP #$8─     F8+1
  238. ├51├  BCS $├540    GREATER OR EQUAL, THEN NO FUNCTION KEY
  239. ├51┼  SEC          SET CARRY 
  240. ├51╞  SBC #$84     MINUS $84 
  241. ├521  ASL A        MULT WITH 2
  242. ├522  STA $├543    SAVE VALUE
  243. ├525  ASL A        AGAIN
  244. ├526  ASL A        MULTIPLIED WITH 8
  245. ├527  ADC $├543    ADD 2*NUMBER (= 10*NUMBER)
  246. ├52┴  TAX          USE RESULT AS INDEX
  247. ├52┬  LDY #$00     Y = 0
  248. ├52─  LDA $├544,X  GET FUNCTION TEXT
  249. ├530  BEQ $├53┬    LAST CHAR THEN READY
  250. ├532  STA $0277,Y  TEXT IN KEYBOARDBUFFER
  251. ├535  INX          INDEX + 1
  252. ├536  INY          NEXT CHAR IN BUFFER
  253. ├537  CPY #$0┴     10TH CHARACTER?
  254. ├539  BCC $├52─    NOT, THEN READ ON
  255. ├53┬  STY $├6      PUT NUMBER OF CHARS IN BUFFER
  256. ├53─  JMP $├4├┴    READY AND EDIT
  257.  
  258. ├540  JMP $├363    TEST ON SPECIAL CHARS
  259.  
  260. ├543  00           TEMPORARY FOR MULT WITH 10
  261.  
  262. ├544-├54─          TEXT FOR SHIFT+╥╒╬/╙╘╧╨
  263. ├54┼-├557          TEXT FOR ╞1
  264. ├558-├561          TEXT FOR ╞3
  265. ├562-├56┬          TEXT FOR ╞5
  266. ├56├-├575          TEXT FOR ╞7
  267. ├576-├57╞          TEXT FOR ╞2
  268. ├580-├589          TEXT FOR ╞4
  269. ├58┴-├593          TEXT FOR ╞6
  270. ├594-├59─          TEXT FOR ╞8
  271.  
  272. ├59┼  00           FLAG LEADIN
  273. ├59╞  00           FREE
  274.  
  275. ├5┴0  LDX #$18     NUMBER OF ╙╔─ REGISTERS IN X
  276. ├5┴2  LDA #$00     0 IN ACCU
  277. ├5┴4  STA $─400,X  RESET REGISTER X
  278. ├5┴7  DEX          NEXT REGISTER
  279. ├5┴8  BPL $├5┴4    MORE THEN JUMP
  280. ├5┴┴  RTS          READY
  281.  
  282. ├5┴┬  JSR $├5┴┴    WAIT (EMPTY SUBROUTINE)
  283. ├5┴┼  DEX          X:-1
  284. ├5┴╞  BNE $├5┴┬    JUMP FOR LONGER WAITING
  285. ├5┬1  DEY          Y:-1
  286. ├5┬2  BNE $├5┴┬    JUMP FOR LOMGER WAITING
  287. ├5┬4  RTS          READY
  288.  
  289.  
  290.  
  291. ├5┬5  JSR $├5┴0    INIT ╙╔─
  292. ├5┬8  LDX #$03     SET FIRST 4 REGISTERS
  293. ├5┬┴  LDA $├5╞6,X  GET VALUE FROM TABLE
  294. ├5┬─  STA $─400,X  SET REGISTER (TONE, PULSE, TIME)
  295. ├5├0  DEX          X:-1
  296. ├5├1  BPL $├5┬┴    IF NOT LAST REG, THEN JUMP
  297. ├5├3  LDA $├5╞┬    READ ATTACK AND DECAY
  298. ├5├6  STA $─405    SET ATTACK AND DECAY
  299. ├5├9  LDA $├5╞├    READ SUSTAIN AND RELEASE
  300. ├5├├  STA $─406    SET SUSTAIN EN RELEASE
  301. ├5├╞  LDA $├5╞─    READ VOLUME
  302. ├5─2  STA $─418    SET VOLUME
  303. ├5─5  LDA $├5╞┴    READ SOUND TYPE
  304. ├5─8  ORA #$01     SET GATE BIT
  305. ├5─┴  STA $─404    SET SOUND TYPE AND GATEBIT IN ╙╔─
  306. ├5──  LDY $├5╞┼    READ GATE TIME
  307. ├5┼0  JSR $├5┴┬    AND WAIT FOR GATE
  308. ├5┼3  LDA $├5╞┴    RESET GATE BIT
  309. ├5┼6  STA $─404